const jwt = require('jsonwebtoken');

// JWT验证中间件
const authenticateToken = (req, res, next) => {
  const authHeader = req.headers['authorization'];
  const token = authHeader && authHeader.split(' ')[1];

  console.log('JWT验证 - Authorization header:', authHeader);
  console.log('JWT验证 - 提取的token:', token ? 'token存在' : 'token不存在');

  if (!token) {
    console.log('JWT验证失败 - 访问令牌缺失');
    return res.status(401).json({ message: '访问令牌缺失' });
  }

  // 使用全局JWT密钥或配置文件中的密钥
  const jwtSecret = global.JWT_SECRET || process.env.JWT_SECRET || 'your_jwt_secret_key_change_this_in_production';

  jwt.verify(token, jwtSecret, (err, user) => {
    if (err) {
      console.log('JWT验证失败 - 访问令牌无效:', err.message);
      return res.status(403).json({ message: '访问令牌无效' });
    }
    console.log('JWT验证成功 - 用户信息:', user);
    req.user = user;
    next();
  });
};

module.exports = authenticateToken;



